#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <fcntl.h>
#include <sys/select.h>

int main(int argc, char *argv[])
{

    char buf[100] = "";
    fd_set rset;      //select集合
    FD_ZERO(&rset);   //将集合清0
    FD_SET(0, &rset); //将标准输入加入到集合中 //TODO 这个地方怎么把标准化输入加到集合中的。

    while (1)
    {
#if 1
        printf("select[1]\n");
        if(select(1, &rset, NULL, NULL, NULL)>0) //阻塞到在标准化输入有数据时执行代码
        {
                printf("select[2]\n");
                printf("please input:");
                fflush(stdout);// 这个地方不会再阻塞了，应为select已经保证有数据可读
                read(0, buf, 100);
                printf("buf=%s\n",buf);
                printf("select[3]\n");
        }
        printf("select[4]\n");
#else
        printf("please input:");
        fflush(stdout); // 阻塞等待输入数据
        read(0, buf, 100);
        printf("buf=%s\n", buf);

#endif
    }
    return 0;
}
